
/******************/
/* TP5 - GRUPO 13 */
/******************/
/* Andre Bonna    */
/* Artur Gontijo  */
/* Ivo Trivella   */
/******************/


#include <stdio.h>
#include <stdio_ext.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


#define DATABASE "base13.dat"

#define NOMEARQTAM 20

#define ORDEM 5


/* ----------------------- ESTRUTURAS ----------------------- */

/* Noh da Arvore B+ */ 
typedef struct{
  int folha;               /* 1 = Folha, 0 = Nao Folha */
  int tam;                 /* Quantidade de Chaves em um Noh */
  int keys[ORDEM];         /* Delimitadores das Chaves */
  int proxk[ORDEM+1];      /* Apontadores para as Prox Chaves */
  int direita;             /* Apontador para Direita */
  int esquerda;            /* Apontador para Esquerda */
  int Narq;                /* Nome do Arquivo a ser Gravado */
} Noh;

/* ----------------------- FUNCOES ----------------------- */

/* Insere uma Chave na Arvore */
void Insere(int inteiro);

/* Verifica se um Determinado Noh jah existe ou Nao na Arvore */
int Verifica(int num, int chave);

/* Remove uma Chave da Arvore */
void Remove(int raiz, int chave);

/* Busca por uma Chave na Arvore */
int Busca(int chave);

/* Lista todas as Chaves da Arvore */
void Lista(FILE **arq);

/* Le o Conteudo de um Noh do Arquivo */
void LeNoh(Noh *Node, int Narq);

/* Grava um Noh da RAM para o Arquivo */
void GravaNoh(Noh *Node);

/* Dah um Split na Arvore, caso Necessario */
void Split(int teste, int teste2);

/* -------------------------------------------------------- */
